package com.mgg.user.service.profile;

import com.mgg.user.entity.BankCardDO;
import com.mgg.user.vo.BankCardVO;
import com.mgg.user.vo.IdentifyCardVO;
import com.mgg.user.vo.ProfileVO;

import java.util.List;
import java.util.Map;

public interface ProfileService {

    /**
     * 修改用户个人资料
     * @return
     * @throws Exception
     */
    Integer updateProfile(String userId, String username, String headImg, String birthday, String sex, String region);

    /**
     * 获取用户个人资料
     * @param userId
     * @return
     * @throws Exception
     */
    ProfileVO getProfileByUserId(String userId);

    /**
     * 上传用户身份证
     * @param userId
     * @param realName
     * @param identityNumber
     * @param frontImage
     * @param consImage
     * @return
     * @throws Exception
     */
    Integer saveUserIdentityCard(String userId, String realName, String identityNumber, String frontImage, String consImage);

    /**
     * 获取身份证
     * @param userId
     * @return
     * @throws Exception
     */
    IdentifyCardVO getUserIdentityCard(String userId);

    /**
     * 上传银行卡
     * @param bankCardDO
     * @return
     * @throws Exception
     */
    Integer saveUserBankCard(BankCardDO bankCardDO);

    /**
     * 获取用户银行卡列表
     * @param userId
     * @return
     * @throws Exception
     */
    List<Map<String,Object>> listUserBanlCardByUserId(String userId);

    /**
     * 微信设计账号绑定
     * @return
     * @throws Exception
     */
    Integer insertUserConnection(String userId, String providerId, String openid, String unionid, String name, String image);

    /**
     * 解除社交账号绑定
     * @param userId
     * @param providerId
     */
    Integer deleteUserConnection(String userId, String providerId);

    /**
     * 更新用户关联微信的unionid
     * @param userId
     * @param providerId
     * @param openid
     * @return
     * @throws Exception
     */
    Integer updateUserUnionid(String userId, String providerId, String openid);
}
